Задача финского школьника

Задача школьника

Как я понял цель - взять численно определенный интеграл:

$$

f(x) = \int_{-1}^{2} \sqrt{x^3+1}\,dx

$$

Графики

А еще понять как работают простейшие численные методы и что интеграл - это площадь под кривой. Ну для начала я б нарисовал эту кривую:

Plot[(*SqB[*)Sqrt[(*SpB[*)Power[x(*|*),(*|*)3](*]SpB*) + 1](*]SqB*), {x, -1.0, 2.0}, ImageSize -> {600, 400}, PlotLabel -> "Собственно нужно посчитать площадь под графиком", AxesLabel -> {"x", "y"}, PlotStyle -> Red ] Второй вариант построения - посимпотишнее, но более громоздкий если нужно много самостоятельно настроить:

Plotly[(*SqB[*)Sqrt[(*SpB[*)Power[x(*|*),(*|*)3](*]SpB*) + 1](*]SqB*), {x, -1.0, 2.0}, ImageSize -> {600, 400}] Очевидно, что функция становится комплексной если аргумент меньше $$-1$$.

Динамический график

А теперь возьмем отрезок из задание $$(a,b) = (-1,2)$$, разобьем его на $$n$$ частей.

Причем значение $$n$$ можно задать при помощи динамического манипулятора.

И построим сами прямоугольнички на фоне кривой:

{a, b} = {-1, 2}; n = 100; d = (b - a) / n; f[x_] := (*SqB[*)Sqrt[(*SpB[*)Power[x(*|*),(*|*)3](*]SpB*) + 1](*]SqB*); fr[x_, d_] := {{x, 0}, {x, f[x+d]}, {x+d, f[x+d]}, {x+d, 0}}; rectangles = Table[fr[x, d], {x, a, b-d, d}]; Graphics[{ Red, Line[Offload[rectangles]], Thick, Blue, Line[Table[{x, f[x]}, {x, a, b, 0.001}]] }, Frame->True, ImageSize->{600, 400}] slider = InputRange[3, 100, 1, "Label"->"Number of rectangles"] EventHandler[slider, Function[$n, rectangles = N@Table[fr[x, (b-a)/$n], {x, a, b, (b-a-d)/$n}] ]]; Теперь можно дрыгать слайдер выше и смотреть как меняется приближение в зависимости от числа прямоугольников

Сам численный интеграл

Ну и повторенье. Делаем тоже что и на python, но нагляднее - т.е. численно считаем определенный интеграл.

Сначала вычислим набор значений в 100 отрезках:

points = Table[f[x], {x, a+d, b, d}]; Length[points] Умножим все на $$d$$ и сложим:

N @ Total[d * points] Собственно все

И однострочник на WL, который дает этот определенный интеграл:

N @ Sum[Sqrt[x^3+1] * d, {x, a+d, b, d}]

Аналитический интеграл

Integrate[(*SqB[*)Sqrt[(*SpB[*)Power[x(*|*),(*|*)6](*]SpB*) - 1](*]SqB*), x] Это гипергеометрическая функция Гаусса